package com.thermal.thermal_inspection.service;

import com.thermal.thermal_inspection.entity.Map;
import com.thermal.thermal_inspection.vo.MapDetailVO;

import java.util.List;

public interface MapService {
    /**
     * 查询已保存地图
     */
    List<Map> getMaps(int pageNum, int pageSize);

    /**
     * 获取地图总数量
     */
    int getTotal();

    /**
     * 判断地图是否存在
     */
    Map existMap(int mapId);

    /**
     * 查询所有地图点位
     */
    List<MapDetailVO> getAllMapDetail(int mapId);

    /**
     * 查询特定地图点位
     */
    MapDetailVO getOneMapDetail(int mapDetailId);

    /**
     * 新增地图
     */
    int addMap(String mapName, String mapLongitude, String mapLatitude, int unitId, String mapDetailDesc, String mapNfcMsg);

    /**
     * 通过mapName获取地图
     */
    Map getMapByMapName(String mapName);

    /**
     * 地图添加点位
     */
    int addMapDetail(int mapId, String mapLongitude, String mapLatitude, int unitId, String mapDetailDesc, String mapNfcMsg);

    /**
     * 修改地图名称
     */
    int changeMapName(int mapId, String mapName);

    /**
     * 判断地图点位是否存在
     */
    boolean existMapDetail(int mapDetailId);

    /**
     * 修改地图点位信息
     */
    int changeMapDetail(int mapDetailId, int mapId, String mapDetailDesc);

    /**
     * 删除地图
     */
    int deleteMap(int mapId);

    /**
     * 删除地图点位
     */
    int deleteMapDetail(int mapDetailId);
    /**
     * 把地图点位对应的NFC设置为空
     */
    Integer updateNFCToEmpty(String nfcMsg);

    /**
     * 是否存在地图点位名
     */
    boolean existMapDetailDesc(int mapId, String mapDetailDesc);

    /**
     * 查询所有已保存地图（无分页功能）
     */
    List<Map> getAllMaps();

    /**
     * 查看可添加点位
     */
    List<MapDetailVO> getExtraPoints(int mapId);
}
